---
title: 消息
type: docs
weight: 20
---

<Info>**协议修订版**：2024-11-05</Info>

MCP 中的所有消息 **必须** 遵循 [JSON-RPC 2.0](https://www.jsonrpc.org/specification) 规范。该协议定义了三种消息类型：

## 请求

请求从客户端发送到服务器，或反之。

```typescript
{
  jsonrpc: "2.0";
  id: string | number;
  method: string;
  params?: {
    [key: string]: unknown;
  };
}
```

- 请求 **必须** 包含字符串或整数 ID。
- 与基础 JSON-RPC 不同，ID **不得** 为 `null`。
- 请求 ID 在同一会话内 **不得** 被请求方重复使用。

## 响应

响应是对请求的回复。

```typescript
{
  jsonrpc: "2.0";
  id: string | number;
  result?: {
    [key: string]: unknown;
  }
  error?: {
    code: number;
    message: string;
    data?: unknown;
  }
}
```

- 响应 **必须** 包含与对应请求相同的 ID。
- 必须设置 `result` 或 `error` 之一。响应 **不得** 同时设置两者。
- 错误代码 **必须** 为整数。

## 通知

通知从客户端发送到服务器，或反之。它们不期望响应。

```typescript
{
  jsonrpc: "2.0";
  method: string;
  params?: {
    [key: string]: unknown;
  };
}
```

- 通知 **不得** 包含 ID。